<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>09数据类型</title>
</head>
<body>
<script>
    /*
    *
    * 1、JS中有哪些数据类型？
    * JS的原始数据类型：number、string、boolean、null、undefined、object
    * number（数字类型）：值为整数和小数
    * string（字符串类型）：值一般用双引号和单引号括起来
    * boolean（布尔类型）：值只有两个，true（真、1）和 false（假、0）
    * null（空类型）：值只有一个null，当一个对象指向为空时，此时可以赋值为null
    * undefined(未定义)：值只有一个undefined
    *          什么情况下结果为undefined?
    *          1、变量声明了没有赋值，结果为undefined
    *           var num;
    *           console.log(num);
    *          2、函数没有明确返回值，如果接受了，结果也是undefined
    * object(对象):
    *
    * 2、如何获取这些变量的数据类型？ 使用typeof来获取
    *
    * typeof的使用语法：
    * typeof 变量名
    * typeof (变量名)
    *
    *
    * */

    //NaN:not a number(注意：NaN与任何值都不相等)
    //isNaN:is not a number

    // 如果一个未赋值的变量和一个数字相加，结果为NaN不是一个数字，也没有意义
    // var num;
    // console.log(num+10);//此时的结果为NaN ----(Not an Number)-----不是一个数字

    //不是一个数字和不是一个数字不相等(不要用NaN验证是不是NaN)
    // var num;
    // console.log(num+10==NaN);//此时结果为false;

    //如何验证这个结果是不是NaN，应该用isNaN(变量名)--------（is not a number）结果不是一个数字
    // var num,num1=10;
    // console.log(num);//此时结果为undefined
    // console.log(isNaN(num));//此时结果为true
    // console.log(isNaN(num1));//此时结果为false
    // console.log(isNaN("10"));//此时结果为false
    // console.log(isNaN(num+10));//此时结果为true
    // console.log(isNaN(num1+10));//此时结果为false
    // console.log(isNaN("10"+10));//此时结果为false



    // var num=10;
    // var str="小白";
    // var flag=true;
    // var nll=null;
    // var undef;
    // var obj=new Object();
    // console.log(typeof num);//此时的结果为number
    // console.log(typeof str);//此时的结果为string
    // console.log(typeof flag);//此时的结果为boolean
    // console.log(typeof nll);//此时的结果为object,当一个变量赋值为null时，此时为对象
    // console.log(String(nll));//此时的结果为null，此时只是以字符串的形式输出而已，与console.log("10");同理
    // console.log(typeof undef);//此时的结果为undefined
    // console.log(typeof obj);//此时的结果为object



</script>
</body>
</html>